home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1999 January
/
EnigmA AMIGA RUN 33 (1999)(G.R. Edizioni)(IT)[!][issue 1999-01].iso
/
earcd
/
apus
/
boothack
/
old
/
bh980726.lha
/
bh980726-2
/
ppc_boot.s
< prev
next >
Wrap
Text File
|
1997-02-22
|
5KB
|
357 lines
# GNU C 2.7.2.1
# -O1 -fdefer-pop -fomit-frame-pointer -fthread-jumps -fpeephole
# -ffunction-cse -finline -fpcc-struct-return -fcommon -fgnu-linker -mpowerpc
# -mnew-mnemonics
.file "ppc_boot.c"
gcc2_compiled.:
.section ".text"
.align 2
.globl main
.type main,@function
.long 0x401c
main:
stwu 1,-16(1)
mflr 0
stw 31,12(1)
stw 0,20(1)
bl progress_init
li 3,97
bl progress
li 9,0
lis 0,0xf
ori 0,0,16959
.L4:
addi 9,9,1
cmpw 1,9,0
bc 4,5,.L4
li 3,98
bl progress
lis 11,0xdf
ori 11,11,61594
lis 9,0xdf
ori 9,9,61596
li 0,32767
sth 0,0(11)
sth 0,0(9)
li 3,99
bl progress
bl goSupervisor
li 3,100
bl progress
bl PPCCacheFlushAll
mfspr 0,1008
lis 3,0
ori 3,3,0xc000
andc 0,0,3
sync
isync
mtspr 1008,0
mfmsr 0
li 3,0b110000
andc 0,0,3
isync
mtmsr 0
sync
li 3,101
bl progress
lis 9,0xf
ori 9,9,65280
lwz 31,0(9)
addi 31,31,512
rlwinm 0,31,0,30,31
addic 0,0,-4
subf 31,0,31
addis 9,0,relocate@ha
addi 11,9,relocate@l
mr 10,31
addis 9,0,relocateEnd@ha
addi 9,9,relocateEnd@l
subf 9,11,9
srwi. 9,9,2
bc 12,0,.L8
.L10:
lwz 0,0(11)
stw 0,0(10)
addi 10,10,4
addi 11,11,4
addic. 9,9,-1
bc 4,0,.L10
.L8:
li 3,102
bl progress
mr 0,31
mtlr 0
blr
.L14:
b .L14
.Lfe1:
.size main,.Lfe1-main
.align 2
.globl relocate
.type relocate,@function
.long 0x403c
relocate:
stwu 1,-32(1)
mflr 0
stw 29,20(1)
stw 30,24(1)
stw 31,28(1)
stw 0,36(1)
li 3,103
bl progress
lis 9,0xf
ori 9,9,65280
lwz 30,0(9)
lwz 0,28(30)
cmpwi 1,0,0
bc 12,6,.L16
lwz 0,8(30)
lwz 9,12(30)
add 10,0,9
srwi 10,10,2
lwz 11,0(30)
li 31,0
cmpwi 1,10,0
addi 10,10,-1
bc 12,6,.L18
.L19:
lbz 0,0(11)
slwi 0,0,8
lbzu 9,1(11)
or 0,0,9
slwi 0,0,8
lbzu 9,1(11)
or 0,0,9
slwi 0,0,8
lbzu 9,1(11)
or 0,0,9
addi 11,11,1
xor 31,31,10
xor 31,31,0
cmpwi 1,10,0
addi 10,10,-1
bc 4,6,.L19
.L18:
li 3,67
bl progress
li 3,49
bl progress
lwz 0,28(30)
cmpw 1,0,31
li 3,45
bc 4,6,.L21
li 3,43
.L21:
bl progress
.L16:
lwz 29,0(30)
lwz 9,4(30)
lwz 0,8(30)
add 11,9,0
lwz 0,12(30)
add 11,11,0
cmpw 1,9,11
bc 12,6,.L24
.L25:
lbz 0,0(29)
stb 0,0(9)
addi 29,29,1
addi 9,9,1
cmpw 1,9,11
bc 4,6,.L25
.L24:
li 3,104
bl progress
lwz 0,28(30)
cmpwi 1,0,0
bc 12,6,.L27
lwz 0,8(30)
lwz 9,12(30)
add 10,0,9
srwi 10,10,2
lwz 11,4(30)
li 31,0
cmpwi 1,10,0
addi 10,10,-1
bc 12,6,.L29
.L30:
lbz 0,0(11)
slwi 0,0,8
lbzu 9,1(11)
or 0,0,9
slwi 0,0,8
lbzu 9,1(11)
or 0,0,9
slwi 0,0,8
lbzu 9,1(11)
or 0,0,9
addi 11,11,1
xor 31,31,10
xor 31,31,0
cmpwi 1,10,0
addi 10,10,-1
bc 4,6,.L30
.L29:
li 3,67
bl progress
li 3,50
bl progress
lwz 0,28(30)
cmpw 1,0,31
li 3,45
bc 4,6,.L32
li 3,43
.L32:
bl progress
.L27:
lwz 9,4(30)
lwz 0,20(30)
add 9,9,0
lwz 0,16(30)
subf 11,0,9
add 29,29,0
cmpw 1,9,11
bc 12,6,.L35
.L36:
lbzu 0,-1(29)
stbu 0,-1(9)
cmpw 1,9,11
bc 4,6,.L36
.L35:
li 3,105
bl progress
lis 11,0xfff0
lwz 9,4(30)
addis 9,9,0x4000
stw 9,0(11)
lwz 9,4(30)
addis 0,9,0x4000
stw 0,0(9)
li 3,75
bl progress
lwz 0,16(30)
cmpwi 1,0,0
bc 12,6,.L38
lwz 5,20(30)
addis 5,5,0xc000
subf 4,0,5
b .L39
.L38:
li 4,0
.L39:
lis 3,0x6170
ori 3,3,30067
lwz 7,4(30)
addi 7,7,12
mtlr 7
blr
.L42:
b .L42
.Lfe2:
.size relocate,.Lfe2-relocate
.align 2
.globl goSupervisor
.type goSupervisor,@function
.long 0x400c
goSupervisor:
stwu 1,-16(1)
mflr 0
stw 0,20(1)
addis 9,0,setPRend@ha
addi 9,9,setPRend@l
addis 11,0,setPR@ha
addi 11,11,setPR@l
subf 9,11,9
lis 10,0xfff0
ori 10,10,1792
srawi 9,9,2
addze. 9,9
bc 4,1,.L47
.L49:
lwz 0,0(11)
stw 0,0(10)
addi 10,10,4
addi 11,11,4
addic. 9,9,-1
bc 12,1,.L49
.L47:
bl PPCCacheFlushAll
trap
lwz 0,20(1)
mtlr 0
addi 1,1,16
blr
.Lfe3:
.size goSupervisor,.Lfe3-goSupervisor
.align 2
.globl progress_init
.type progress_init,@function
.long 0x4008
progress_init:
stwu 1,-16(1)
lis 9,0xf
ori 9,9,65280
lwz 9,0(9)
lwz 11,24(9)
lis 0,0x5341
ori 0,0,22085
stw 0,0(11)
addi 9,11,4
lis 0,0x424f
ori 0,0,20308
stw 0,4(11)
stwu 11,4(9)
li 0,0
stw 0,4(9)
addi 1,1,16
blr
.Lfe4:
.size progress_init,.Lfe4-progress_init
.align 2
.globl progress
.type progress,@function
.long 0x4008
progress:
stwu 1,-16(1)
lis 9,0xf
ori 9,9,65280
lwz 9,0(9)
lwz 9,24(9)
lwz 0,12(9)
addic 0,0,16
stbx 3,9,0
lwz 0,12(9)
addic 0,0,1
stw 0,12(9)
addi 1,1,16
blr
.Lfe5:
.size progress,.Lfe5-progress
.text
.align 4
setPR:
/* Increase the return EA so we get to the next instruction */
mtsprg 1,1
mfsrr0 1
addi 1,1,4
mtsrr0 1
mfsprg 1,1
/* Fiddle the PR bit */
mfsrr1 0
rlwinm 0,0,0,18,16
mtsrr1 0
rfi
setPRend:
.text
.align 4
relocateEnd:
nop
.ident "GCC: (GNU) 2.7.2.1"